As is known in the art, data storage systems may partition storage capacity into blocks of fixed sizes sometimes referred to as “chunks.” Chunks may be used to store objects (i.e., a blob of user data), as well as object metadata. Some data storage systems include a garbage collection (GC) facility whereby storage capacity allocated to chunks may be reclaimed as corresponding objects are deleted or updated. GC can result in chunks being deleted and new chunks being created.
As is also known, distributed data storage systems may protect data using error-correcting codes (i.e., forward error correction). Some storage systems generate parity chunks by XOR'ing (i.e., using an exclusive OR operator) together chunks of user data. Parity chunks and user data chunks may be stored across one or more nodes of the distributed system, and such nodes may be in different geographic regions.
The combination of garbage collection and forward error correction in distributed storage can result in high levels of network traffic (e.g., wide-area network traffic) and reducing such traffic would be desirable.